package com.jing21.learn.elasticsearch.intf.client;

import com.jing21.learn.common.learn.exception.LogicException;
import com.jing21.learn.elasticsearch.intf.model.BaseIndexPo;

/**
 * 文档服务 （所有方法都需要ID）
 *
 * @author zhengjing
 * @version 1.0
 * @date: 2017/10/25 16:27
 */
public interface DocumentService {

    /**
     * 添加或者修改文档 如果ID存在会修改
     *
     * @param baseIndexPo 文档对象
     * @return
     * @throws LogicException
     */
    boolean addDocument(BaseIndexPo baseIndexPo) throws LogicException;

    /**
     * 删除文档
     *
     * @param baseIndexPo 文档对象
     * @return
     * @throws LogicException
     */
    boolean deleteDocument(BaseIndexPo baseIndexPo) throws LogicException;

    /**
     * 修改文档中不为空的字段
     * @param baseIndexPo
     * @return
     * @throws LogicException
     */
    boolean updateDocumentSelective(BaseIndexPo baseIndexPo) throws LogicException;
}
